home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / 3DTOSHI2.ZIP / mpg3d / include / g3d3ds.h next >
Encoding:
C/C++ Source or Header  |  1996-04-18  |  3.5 KB  |  93 lines

  1.  
  2. // g3d3ds.h
  3. //
  4. // Copyright (c) 1996 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. #ifndef __G3D3DS_H__
  7. #define __G3D3DS_H__
  8.  
  9. #include "stdgfx.h"
  10. #include "g3dfile.h"
  11.  
  12. // 3DS Chunk Types
  13. #define CHUNK_PRIMARY          0x4D4D   // 3DS File ID
  14.   #define CHUNK_RGBF           0x0010   // RGB Color in float
  15.   #define CHUNK_RGBB           0x0011   // RGB Color in Byte
  16.   // Main Chunks
  17.   #define CHUNK_OBJECT_MESH    0x3D3D   // Object Mesh Data
  18.     // Mesh Chunks
  19.     #define CHUNK_BGCOLOR      0x1200   // Background Color
  20.     #define CHUNK_AMBIENTCOLOR 0x2100   // Ambient Color
  21.     #define CHUNK_OBJECTBLOCK  0x4000   // Object Block
  22.       // Object Description
  23.       #define CHUNK_TRIANGLE   0x4100   // Triangle Data
  24.         // Triangle Description
  25.         #define CHUNK_VERTICES 0x4110   // Vertices for this Triangle
  26.         #define CHUNK_FACELIST 0x4120   // Face List
  27.         #define CHUNK_FACE_MAT 0x4130   // Face Material
  28.         #define CHUNK_MAPLIST  0x4140   // Map List
  29.         #define CHUNK_SMOOLIST 0x4150   // Smooth List
  30.         #define CHUNK_TRMATRIX 0x4160   // Triangle Matrix
  31.         
  32.       #define CHUNK_LIGHT      0x4600   // Light
  33.         // Light Description
  34.         #define CHUNK_SPOTLIGHT 0x4610  // Spot Light
  35.               
  36.       #define CHUNK_CAMERA     0x4700   // Camera
  37.       
  38.   #define CHUNK_MATERIAL       0xAFFF   // Material
  39.     // Material Description
  40.     #define CHUNK_MATNAME      0xA000   // Material Name
  41.     #define CHUNK_AMBIENT      0xA010   // Ambient 
  42.     #define CHUNK_DIFFUSE      0xA020   // Diffuse 
  43.     #define CHUNK_SPECULAR     0xA030   // Specular
  44.     #define CHUNK_TEXTURE      0xA200   // Texture
  45.     #define CHUNK_BUMPMAP      0xA230   // Bump Mapping
  46.     #define CHUNK_MAPFILE      0xA300   // Texture File    
  47.      
  48.   #define CHUNK_KEYFRAMER      0xB000   // Key Framer
  49.     // Key Framer Description
  50.     #define CHUNK_FRAMES       0xB008   // Chunk Frame
  51.  
  52. struct CHUNK3DS
  53.   {
  54.     SHORT ID;
  55.     LONG  NextOffset;  
  56.   }; // End of CHUNK3DS
  57.  
  58. class G3D3DSTOOL : public G3DFILETOOL
  59.   {
  60.     protected :
  61.       float *u_list;
  62.       float *v_list;
  63.     
  64.       // 3DS File Reader
  65.       VOID SkipToNextChunk ( FILEHANDLE f, CHUNK3DS *Chunk );
  66.       BOOLEAN Read3DSChunk ( FILEHANDLE f, CHUNK3DS *Chunk );
  67.       BOOLEAN Read3DSTriVertices ( FILEHANDLE f, G3DPOLYHEDRON* Object,
  68.                                    LONG Fp );
  69.       BOOLEAN Read3DSTriFaceList ( FILEHANDLE f, G3DPOLYHEDRON* Object,
  70.                                    LONG Fp );
  71.       BOOLEAN Read3DSTriMapList ( FILEHANDLE f, G3DPOLYHEDRON* Object,
  72.                                   LONG Fp );
  73.       BOOLEAN Read3DSTriObjectChunks ( FILEHANDLE f, G3DPOLYHEDRON* Object,
  74.                                        LONG Fp );
  75.       BOOLEAN Read3DSObjectChunks ( FILEHANDLE f, LINKEDLIST<G3DOBJECT*> *ObjectList,
  76.                                     LONG Fp );
  77.       BOOLEAN Read3DSMeshChunks ( FILEHANDLE f, LINKEDLIST<G3DOBJECT*> *ObjectList, LONG Fp );
  78.       BOOLEAN Read3DSMainChunks ( FILEHANDLE f, LINKEDLIST<G3DOBJECT*> *ObjectList, LONG Fp );
  79.       
  80.     public :
  81.       G3D3DSTOOL ();
  82.       virtual ~G3D3DSTOOL ();      
  83.       
  84.       virtual BOOLEAN Load ( FILEHANDLE f, LINKEDLIST<G3DOBJECT*> *ObjectList,
  85.                              BOOLEAN ClockWise, double Scale );     
  86.       virtual BOOLEAN Save ( FILEHANDLE f, LINKEDLIST<G3DOBJECT*> *ObjectList,
  87.                              BOOLEAN ClockWise, double Scale );
  88.   }; // End of G3D3DSTOOL
  89.  
  90. #endif
  91.  
  92.  
  93.